// 构造函数
// 1. 正统的面相对象编程
// 自己能够创造出自定义类，构建一套完整的面相对象模型
function CreatePerson(name, age) {
    // 函数未执行的时候没有this
    this.name = name;
    this.age = age;
}
CreatePerson('张三', 25); // this是window 普通函数执行
var person1 = new CreatePerson('李四', 18); // this是构造函数本身
/**
 * @new 构造函数执行模式
 * new CreatePerson 此时 CreatePerson 不仅仅是一个函数 被称之为类 返回的结果是 CreatePerson这个类的实例对象，
 * 函数中出现的this 一般情况下 都是指这个实例
*/
 
// function Fn () {}
// new Fn
// new 回执行代码 即使不加括号
function Fn() {
}
Fn.prototype.eat = () => {
    console.log('eat')
}
var f1 = Fn()
// console.log(Fn.prototype.__proto__.constructor === Object);
// console.log(Object);
for (let key in Object) {
    console.log(new Object);
}
console.log(Object.toString);
